package com.gitee.jnxj.nraft.common.core;

import com.gitee.jnxj.nraft.common.log.LogEntry;
import lombok.Builder;
import lombok.Data;

import java.util.List;

/**
 * @author 江南小俊
 * @since 2021/7/14
 **/
@Builder
@Data
public class AppendEntriesReq {
    /**
     * leader的任期号
     **/
    private long term;
    /**
     * 用来让follower把客户端请求定向到leader
     **/
    private int leaderId;
    /**
     * 紧接新条目之前的日志条目索引(当前最大的日志条目索引)
     **/
    private long prevLogIndex;
    /**
     * prevLogIndex的任期
     **/
    private long prevLogTerm;
    /**
     * 储存的日志条目(如果某条目是空的，它就是心跳；为了提高效率可能会发出不止一条日志)
     **/

    private List<LogEntry> entries;
    /**
     * leader的commitIndex
     **/

    private long leaderCommit;
}
